Testing server products is difficult because many different configurations of the server are often used with the same product. Such a product may be installed with all subcomponents on a single machine, or those subcomponents may be distributed across several machines, and may also include redundancy of key subcomponents on multiple machines.
The concept of ‘roles’ is used to describe the required subcomponents of a product to be tested, which allows test code to target specific roles without knowledge of the machine(s) on which the roles were installed. However, in order to execute a test using this feature, the tester was usually required to set up an appropriate XML configuration file (known as the topology XML) on each machine to describe which roles the machine should fill.